﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DECOR.BL.BC;
using DECOR.BL.BE;
using System.Web.Script.Serialization;
using System.Collections.Generic;
using Newtonsoft.Json;
using DECOR.DL.DALCF;

namespace TabletWebapp
{
    public partial class Prueba1 : System.Web.UI.Page
    {
        private List<GenericBE> _lvLstPrioridadEnt = new List<GenericBE>();
        JavaScriptSerializer jss = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DaoFactory.pConnId = "";
                //DALC.logOut(Session.SessionID);
                Session.RemoveAll();
                Session.Clear();
                Session.Abandon();
                Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
                CredencialesController.Usuario = null;      

                string pContype = ConfigurationManager.AppSettings["contype"];
                login();
                //listarParametros();

                //jss = new JavaScriptSerializer();
                //string jSON = jss.Serialize((List<GenericBE>)Session["lstTipoDocumento"]);
                //jSON = string.Concat("null({\"root\":", jSON);
                //jSON = string.Concat(jSON, "})");
                ////jSON = string.Concat(jSON, ",\"results\":3}");
                //jSON = jSON.Replace("\"", "'");
                

                listarDocumentosCabeceraDetalle();
                //buscarMateriales();
                //buscarStock();
                //buscarReclamos();
                //buscaInterlocutores();
                //Response.ContentType = "application/json; charset=UTF-8";
                //Response.Write(jSON);
            }
        }

        private void listarParametros()
        {
            List<GenericBE> lstOficinas = new List<GenericBE>();
            List<GenericBE> lstTipoDocumento = new List<GenericBE>();
            List<GenericBE> lstGrupoVendedores = new List<GenericBE>();
            //List<GenericBE> lstCondicionesPago = new List<GenericBE>();
            List<GenericBE> lstSectores = new List<GenericBE>();
            List<GenericBE> lstMotivos = new List<GenericBE>();
            List<GenericBE> lstGrupoCond = new List<GenericBE>();
            List<GenericBE> lstBloqueoEntrega = new List<GenericBE>();
            List<GenericBE> lstBloqueoFactura = new List<GenericBE>();
            List<GenericBE> lstVendedores = new List<GenericBE>();
            List<GenericBE> lstCodigoPostal = new List<GenericBE>();
            List<GenericBE> lstTipoVisita = new List<GenericBE>();

            ParametroBC.Instance.getDataDDL(ref lstCodigoPostal, ref lstVendedores,
                ref lstBloqueoEntrega, ref lstBloqueoFactura,
                ref _lvLstPrioridadEnt, ref lstGrupoCond, ref lstGrupoVendedores, ref lstMotivos, ref lstOficinas, ref lstSectores,
                ref lstTipoDocumento, ref lstTipoVisita);

            Dictionary<string, List<GenericBE>> lstCombos = new Dictionary<string, List<GenericBE>>();
            lstCombos.Add("codigoPostal", lstCodigoPostal);
            lstCombos.Add("vendedores", lstVendedores);
            lstCombos.Add("bloqueoEntrega", lstBloqueoEntrega);
            lstCombos.Add("bloqueoFactura", lstBloqueoFactura);
            lstCombos.Add("prioridadEnt", _lvLstPrioridadEnt);
            lstCombos.Add("grupoCond", lstGrupoCond);
            lstCombos.Add("grupoVendedores", lstGrupoVendedores);
            lstCombos.Add("motivos", lstMotivos);
            lstCombos.Add("oficinas", lstOficinas);
            lstCombos.Add("sectores", lstSectores);
            lstCombos.Add("tipoDocumento", lstTipoDocumento);
            lstCombos.Add("tipoVisita", lstTipoVisita);

            Session["CargarCombos"] = lstCombos;

            Dictionary<string, List<GenericBE>> dict = (Dictionary<string, List<GenericBE>>)Session["CargarCombos"];

            Session["lstTipoDocumento"] = dict["tipoDocumento"].ToList();
        }

        private void login()
        {
            DECOR.DL.DALCF.DaoFactory.pConnId = Session.SessionID;
            UsuarioWebBE objUsuarioWeb = new UsuarioWebBE();
            objUsuarioWeb.Usuario = "VENDEDORLM"; //WEBDIST
            objUsuarioWeb.Clave = "DECORCENTER";
            //objUsuarioWeb.guid = Session.SessionID;
            objUsuarioWeb.PerNr = "00000017";
            string retval = UsuarioBC.Instance.login(ref objUsuarioWeb);
            PersonaBE objPersona = PersonaBC.Instance.leer(objUsuarioWeb.PerNr);
            CredencialesController.Usuario = objUsuarioWeb;
        }

        private void listarDocumentosCabeceraDetalle()
        {
            List<PedidoCabeceraBE> lstPedido = new List<PedidoCabeceraBE>();
            List<PedidoDetalleBE> listDetalle = new List<PedidoDetalleBE>();
            lstPedido = PedidoBC.Instance.listaPedidoCabeceraDetalle("", "", Convert.ToDateTime("01.01.2012"), Convert.ToDateTime("19.04.2012"), "", "", "", "", "",
                "", "", "", "", out listDetalle, "");
            JsonSerializerSettings s = new JsonSerializerSettings();
            string jSON = JsonConvert.SerializeObject(lstPedido);

            //jss = new JavaScriptSerializer();
            //string jSON = jss.Serialize(listDetalle);
            //jSON = string.Concat("{\"root\":", jSON);
            //jSON = string.Concat(jSON, "}");
            ////jSON = string.Concat(jSON, ",\"results\":3}");
            //jSON = jSON.Replace("\"", "'");

            Response.ContentType = "application/json; charset=UTF-8";
            Response.Write(jSON);
        }

        private void buscarMateriales()
        {
            List<MaterialBE> lstMaterial = new List<MaterialBE>();
            lstMaterial = MaterialBC.Instance.buscarMateriales("", "", "", "", "", "");
            jss = new JavaScriptSerializer();
            string jSON = jss.Serialize(lstMaterial);
            jSON = string.Concat("{\"root\":", jSON);
            jSON = string.Concat(jSON, "}");
            Response.ContentType = "application/json; charset=UTF-8";
            Response.Write(jSON);
        }

        private void buscarStock(DetalleBE objDet, string _orgVta, string _canal)
        {
            List<StockBE> lstStock = new List<StockBE>();

            lstStock = ParametroBC.Instance.getDataLotes(objDet.CodMaterial, 0m, "", "", "", "", "", _orgVta, _canal);
            jss = new JavaScriptSerializer();
            string jSON = jss.Serialize(lstStock);
            jSON = string.Concat("{\"root\":", jSON);
            jSON = string.Concat(jSON, "}");
            Response.ContentType = "application/json; charset=UTF-8";
            Response.Write(jSON);
        }

        private void buscarReclamos()
        {
            List<ReporteReclamoBE> lstRecl = new List<ReporteReclamoBE>();
            lstRecl = ReclamoBC.Instance.getReporteReclamo("", "", "", "", "",
                Convert.ToDateTime("01.01.2012"), Convert.ToDateTime("03.04.2012"), "",
                Convert.ToDateTime("01.01.1900"), Convert.ToDateTime("01.01.1900"),
                Convert.ToDateTime("01.01.1900"), Convert.ToDateTime("01.01.1900"),"");

            jss = new JavaScriptSerializer();
            string jSON = jss.Serialize(lstRecl);
            jSON = string.Concat("{\"root\":", jSON);
            jSON = string.Concat(jSON, "}");
            Response.ContentType = "application/json; charset=UTF-8";
            Response.Write(jSON);
        }

        private void buscaInterlocutores()
        {
            List<InterlocutorBE> lstInterlocutores = new List<InterlocutorBE>();

            lstInterlocutores = DaoFactory.PedidoDALC.listaInterlocutores("0000000017");
            

            jss = new JavaScriptSerializer();
            string jSON = jss.Serialize(lstInterlocutores);
            jSON = string.Concat("{\"root\":", jSON);
            jSON = string.Concat(jSON, "}");
            Response.ContentType = "application/json; charset=UTF-8";
            Response.Write(jSON);
        }
    }
}
